package com.shenhao.hpfa.service;

import com.shenhao.hpfa.model.DeviceInfo;
import com.shenhao.hpfa.model.Payload;

public interface HpfaDeviceService {

    /**
     * 打开设备（默认控制器）
     */
    default Payload<DeviceInfo> switchOn() throws Exception {
        return Payload.EMPTY_PAYLOAD;
    }

    /**
     * 关闭设备（默认控制器）
     */
    default Payload<DeviceInfo> switchOff() throws Exception {
        return Payload.EMPTY_PAYLOAD;
    }

    /**
     * 查询设备状态（默认控制器）
     */
    default Payload<DeviceInfo> queryStatus() throws Exception {
        return Payload.EMPTY_PAYLOAD;
    }

    /**
     * 打开指定控制器的设备
     *
     * @param deviceSn 控制器 sn
     */
    default Payload<DeviceInfo> switchOn(String deviceSn) throws Exception {
        return Payload.EMPTY_PAYLOAD;
    }

    /**
     * 打开所有控制器的设备
     *
     */
    default Payload<DeviceInfo> switchOnAll() throws Exception {
        return Payload.EMPTY_PAYLOAD;
    }

    /**
     * 打开所有控制器的设备
     *
     */
    default Payload<DeviceInfo> switchOffAll() throws Exception {
        return Payload.EMPTY_PAYLOAD;
    }

    /**
     * 关闭指定控制器的设备
     *
     * @param deviceSn 控制器 sn
     */
    default Payload<DeviceInfo> switchOff(String deviceSn) throws Exception {
        return Payload.EMPTY_PAYLOAD;
    }

    /**
     * 查询指定控制器的设备状态
     *
     * @param deviceSn 控制器 sn
     */
    default Payload<DeviceInfo> queryStatus(String deviceSn) throws Exception {
        return Payload.EMPTY_PAYLOAD;
    }

}
